package com.rla.domain;

import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import com.rla.common.core.domain.BaseEntity;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;

/**
 * 零售订单对象 mall_order
 *
 * @author rla
 * @date 2025-08-08
 */
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("mall_order")
public class MallOrder extends BaseEntity {

    private static final long serialVersionUID=1L;

    /**
     * 唯一
     */
    @TableId(value = "id")
    private String id;
    /**
     * 用户ID
     */
    private String userId;
    /**
     * 订单类型 1售卖 2退货 3积分兑换
     */
    private String orderType;
    /**
     * 总数量
     */
    private Long totalNum;
    /**
     * 总金额
     */
    private BigDecimal totalAmount;
    /**
     * 优惠金额
     */
    private BigDecimal discountAmount;
    /**
     * 应付金额
     */
    private BigDecimal payableAmount;
    /**
     * 订单状态 0未支付（有状态不显示） 1已支付 （待取货、待发货）-1、已取消   12待收货   99已完成
     */
    private String orderStatus;
    /**
     * 退货原因(退货)
     */
    private String backReason;
    /**
     * 订单时间
     */
    private Date orderTime;
    /**
     * 关联订单(退货)
     */
    private String assocOrderId;
    /**
     * 售后退货状态 0未退款 1退款中 99完成退款  20申请退款 21同意退款(待商家退款) 22同意退货(待买家发货) 23 拒绝退款/退货 24 待商家收货 25商家收货(待商家退款)
     */
    private String backStatus;
    /**
     * 订单完成时间
     */
    private Date finishTime;
    /**
     * 获赠积分
     */
    private Long pointsNum;
    /**
     * 应付积分
     */
    private Long usePoints;
    /**
     * 退款金额
     */
    private BigDecimal backAmount;
    /**
     * 退款积分
     */
    private Long backPointsNum;
    /**
     * 处方文件地址
     */
    private String fileUrls;
    /**
     * 关联电子处方编码
     */
    private String rpNo;
    /**
     * 0关联电子处方是否审方 0未审方 1已审方
     */
    private String rpReview;

    /**
     * 线上支付方式1微信支付 2储值支付 3积分支付
     */
    private String onlinePayMode;
    /**
     * 线上支付时间
     */
    private String onlinePayTime;
    /**
     * 是否包含积分支付
     */
    private String isPoints;
    /**
     * 使用积分数量
     */
    private Long useIntegralNum;
    /**
     * 删除标志（0代表存在 2代表删除）
     */
    @TableLogic
    private String delFlag;
    /**
     * 签名图片地址
     */
    private String picUrl;


    private String backApplyWay;
    private Date backApplyTime;
    private String backWay;
    private String applyInstructions;
    private String afterId;

    private String rollbackOrderStatus;

}
